// pages/shopping/shopping.js
Page({

    /**
     * 页面的初始数据
     */
    data: {
      list:[],
      zongj:0, //总价
      allChecked:false,//全选状态
      checkedCount:0 //选中数量
    },
    //+
    jia(e) {  
        var index = e.currentTarget.dataset.index;  
        var items = this.data.list;  
        if (items[index].count >= 0) {  
            items[index].count++;  
            this.setData({  
                list: items 
            }); 
            this.zongj() 
        }  
    },  
  //-
    jian(e) {  
        var index = e.currentTarget.dataset.index;  
        var items = this.data.list;  
        if (items[index].count > 0) {  
            items[index].count--;  
            this.setData({  
                list: items 
            });  
        this.zongj() 
        } 
    }, 
    //跳转
    navSwitchTab(){
        wx.switchTab({
          url: '/pages/my/my',
        })
    },
    onShow() {
        //判断数据是否返回空
      const list = JSON.parse(wx.getStorageSync('list') || '[]');
      this.setData({
        list: list
      })
      this.zongj()
      if( this.data.checkedCount == this.data.list.length ){
          this.setData({
              allChecked:true
          })
      }else{
          this.setData({
              allChecked:false
          })
      }
    },
// 封装计算商品总价的函数
  zongj(){
      let sum = 0,checkedCount=0
      this.data.list.forEach((item)=>{
          if( item.checked ){
              sum += item.price * item.count
              checkedCount += 1
          }
      })
      this.setData({
        zongj:sum,
          checkedCount:checkedCount
      })
  },
  // 单个商品复选事件
  checked(e){
      let index = e.currentTarget.dataset.index
      this.setData({
          [`list[${index}].checked`]:!this.data.list[index].checked
      })
      this.zongj()
      wx.setStorageSync('list', JSON.stringify(this.data.list))
      if( this.data.checkedCount == this.data.list.length ){
          this.setData({
              allChecked:true
          })
      }else{
          this.setData({
              allChecked:false
          })
      }
  },
  //全选/取消全选事件
  allChecked(){
      this.setData({
          allChecked:!this.data.allChecked
      })
      this.data.list.forEach((item,index)=>{
          this.setData({
              [`list[${index}].checked`]:this.data.allChecked
          })
      })
      this.zongj()
      wx.setStorageSync('list', JSON.stringify(this.data.list))
  } ,
  // 删除事件
  del(e){
      let index2 = e.currentTarget.dataset.index
      let newList = this.data.list.filter((item,index)=>index != index2)
      this.setData({
          list:newList
      })
      this.zongj()
      wx.setStorageSync('list', JSON.stringify(this.data.list))
      if( this.data.checkedCount == this.data.list.length ){
          this.setData({
              allChecked:true
          })
      }else{
          this.setData({
              allChecked:false
          })
      }
  }
  })